package com.ruoyi.web.mapper;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.ruoyi.web.domain.mes.MesMaterial;
import com.ruoyi.web.domain.mes.MesMaterialIndetail;
import com.ruoyi.web.domain.vo.MaterialBrowseVo;
import com.ruoyi.web.domain.vo.MaterialInVo;
import com.ruoyi.web.domain.vo.MaterialUseVo;
import com.ruoyi.web.domain.vo.MaterialVo;

/**
 * 物料管理Mapper接口
 * 
 * @author levicash
 * @date 2024-01-10
 */
public interface MesMaterialMapper 
{
    /**
     * 查询物料管理
     * 
     * @param id 物料管理主键
     * @return 物料管理
     */
    public MesMaterial selectMesMaterialById(Long id);

    /**
     * 查询物料管理列表
     * 
     * @param mesMaterial 物料管理
     * @return 物料管理集合
     */
    public List<MesMaterial> selectMesMaterialList(MesMaterial mesMaterial);

    /**
     * 新增物料管理
     * 
     * @param mesMaterial 物料管理
     * @return 结果
     */
    public int insertMesMaterial(MesMaterial mesMaterial);

    /**
     * 修改物料管理
     * 
     * @param mesMaterial 物料管理
     * @return 结果
     */
    public int updateMesMaterial(MesMaterial mesMaterial);

    /**
     * 删除物料管理
     * 
     * @param id 物料管理主键
     * @return 结果
     */
    public int deleteMesMaterialById(Long id);

    /**
     * 批量删除物料管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesMaterialByIds(Long[] ids);

    /**
     * 根据ids查询物料管理集合
     *
     * @param ids 需要查询的数据主键集合
     * @return 结果
     */
    public List<MesMaterial> selectMesMaterialByIds(Long[] ids);

    /**
     * 查询物料数量
     *
     * @return 数量
     */
    public int selectMesMaterialCount();

    /**
     * 查询物料一览
     *
     * @param map 查询参数
     * @return 物料一览集合
     */
    public List<MaterialBrowseVo> selectMesMaterialBrowse(Map<String, Object> map);

    /**
     * 查询开始时间之前，最近一次盘点数量
     *
     * @return 数量
     */
    public BigDecimal selectMesMaterialBrowseLastPD(Map<String, Object> map);

    /**
     * 批量修改物料明细库存
     *
     * @param mesMateriallList 物料明细库存列表
     * @return 结果
     */
    public int updateStockNumByBatch(List<MesMaterial> mesMateriallList);

    /**
     * 查询物料明细
     *
     * @param map 查询参数
     * @return 物料明细关联集合
     */
    public List<MaterialVo> selectMesMaterialListDetail(Map<String, Object> map);

    /**
     * 查询物料机台明细
     *
     * @param map 查询参数
     * @return 物料机台明细关联集合
     */
    public List<MaterialVo> selectMaterialMachine(Map<String, Object> map);


    /**
     * 查询物料领用明细列表  20240325 added  原因：不能和退库中机台领用明细共用一个方法
     *
     * @param map 查询参数
     * @return 物料机台明细关联集合
     */
    public List<MaterialUseVo> selectMaterialMachineDetail(Map<String, Object> map);

}
